[] (оператор доступа к массиву)

Доступность

Flash Player 4.

Синтаксис

myArray = [a0, a1,...aN]
myArray[i] = value
myObject[propertyName]

Параметры

 

myArray Имя массива.

a0, a1,...aN Элементы массива; любого типа данные или экземпляры объектов, включая вложенные массивы.

i  Число (номер) (или индекс) элемента массива /начинается.с 0/.

myObject Имя объекта.

propertyName Строка или выражение которое оценивается как строка, именуемая свойством объектом.

Возвращает

Использование 1: Ссылка на массив.

Использование 2: Значение элемента массива; любого типа данных или экземпляра объекта ( в том числе вложенного массива).

Использование 3: Свойство объекта, любого типа данных или экземпляра объекта ( в том числе вложенного массива).

Описание

Оператор, создаёт новый массив или многомерный массив с указанными элементами (a0 и так далее) или элементами доступа в массиве. Оператор доступа к массиву позволяет динамически устанавливать и восстанавливать экземпляры, переменные и названия объектов. Он также позволяет получать доступ к свойствам объекта.

Использование 1: Массив - это объект, свойства которого называются элементами, которые идентифицируются по номеру, который называется index. При создании массива, нужно помещать элементы в оператор доступа к массиву ([]) (или квадратные скобки). Массив может содержать элементы различных типов. Например, следующий массив, который называется employee, имеет три элемента: первый - это число, а второй и третий - строки (внутри оператора доступа):

var employee:Array = [15, "Barbara", "Jay"];

Вы можете использовать скобки, для создания многомерных массивов. Уровней вложенности может быть до 256. Следующий код создает массив, названный ticTacToe с тремя элементами; каждый элемент - также массив с тремя элементами :

var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
// Выделите Debug > List Variables в режиме test movie 
// и увидите список элементов массива.

Использование 2: Чтобы напрямую обратиться к элементу массива, нужно ввести эго индекс в квадратных скобках ([]); можно добавлять новые элементы к массиву, изменять значения уже существующих элементов. Первый элемент массива всегда имеет индекс 0, как показано в следующем примере:

var my_array:Array = new Array();
my_array[0] = 15;
my_array[1] = "Hello";
my_array[2] = true;

Можно использовать оператор доступа к массиву ([]), чтобы добавить четвёртый элемент, как в следующем примере:

my_array[3] = "George";

Квадратные скобки используются и для доступа к элементам многомерного массива. Сначала, в квадратных скобках, указывается индекс оригинального массива, а потом индекс вложенного массива. Следующий пример выводит в окно Output число 6 :

var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
trace(ticTacToe[1][2]);// выводится: 6

Использование 3: Можно использовать оператор ([]) (доступа к массиву) вместо функции eval() , чтобы динамически устанавливать и считывать значения свойств объектов или мувиклипов:

name["mc" + i] = "left_corner";

Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .

Пример

Следующий пример демонстрирует два различных способа создания пустого объекта Array (массив); в первой строке используются квадратные скобки ([]) :

var my_array:Array = [];
var my_array:Array = new Array();

В следующем примере создается массив, который называется employee_array и используется функция trace() для вывода элементов массива в панели Output. В четвёртой строке элемент массива меняется и в пятой строке выводиться в окно Output уже новый, изменённый массив :

var employee_array = ["Barbara", "George", "Mary"];
trace(employee_array);
// выводится: Barbara,George,Mary
employee_array[2] = "Sam";
trace(employee_array); // выводится: Barbara,George,Sam

В следующем примере выражение в квадратных скобках ["piece" + i] оценивается и результат используется, как имя переменной, для считывания её из мувиклипа my_mc . В этом примере переменная i должна находиться на одной монтажной линейке (Timeline) с кнопкой. Если переменная i, например, равна 5, то значение переменной piece5 в my_mc отобразится в окне Output:

myBtn_btn.onRelease = function() {
  x = my_mc["piece"+i];
  trace(x);
};

В следующем скрипте выражение в квадратных скобках оценивается и результат используется при создании имени переменной, чтобы потом считать её из мувиклипа name_mc:

name_mc["A" + i];

Если вы знакомы с синтаксисом ActionScript во Flash 4, то можете использовать функцию eval() чтобы добиться того же результата :

eval("name_mc.A" & i);

Вы можете использовать следующий код ActionScript, чтобы создать цикл по всем объектам в _root , который может быть полезным для отладки :

for (i in _root) {
  trace(i+": "+_root[i]);
}

Также можно использовать оператор [] (доступа к массиву), в левой части выражения, чтобы динамически изменять имена экземпляров (instance), переменных и объектов :

employee_array[2] = "Sam";

См.также

класс Array, класс Object